1. Field of the Invention
This invention relates generally to techniques for implementing electronic devices, and relates more particularly to a method for implementing scheduling mechanisms with selectable resource modes.
2. Description of the Background Art
Implementing effective methods for utilizing device resources is a significant consideration for designers and manufacturers of contemporary electronic devices. However, effectively utilizing device resources may create substantial challenges for designers of electronic devices. For example, enhanced demands for increased device functionality and performance may require more system processing power, bus bandwidth, and require additional hardware resources. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.
An electronic device in an electronic network may advantageously communicate with other electronic devices in the network to share resources to thereby substantially increase the capabilities and versatility of individual devices in the electronic network. For example, an electronic network may be implemented in a home environment to enable flexible and beneficial sharing of data and device resources between various consumer electronic devices, such as personal computers, digital video disc (DVD) devices, digital set-top boxes for digital broadcasting, enhanced television sets, and audio reproduction systems.
Network size is also a factor that affects the management of resources in an electronic network. Communications in an electronic network typically become more complex as the number of individual devices or nodes increases. A local software module on the local device may need to communicate with various remote software elements on remote devices across the electronic network. However, successfully managing resources of a substantial number of electronic devices across a network may provide significant benefits to a system user.
Furthermore, enhanced device capability to perform various advanced processes may provide additional benefits to a system user, but may also place increased demands on the control and management of an electronic device. For example, an enhanced electronic device that effectively accesses, processes, and displays digital television programming may benefit from efficient use of resources because of the large amount and complexity of the digital data involved.
Due to growing demands on system resources and substantially increasing data magnitudes, it is apparent that developing new and effective methods for managing resources is a matter of importance for the related electronic technologies. Therefore, for all the foregoing reasons, implementing effective methods for utilizing resources remains a significant consideration for designers, manufacturers, and users of contemporary electronic devices.
In accordance with the present invention, a method is disclosed for effectively implementing scheduling mechanisms with selectable resource modes. In one embodiment of the present invention, initially, device software preferably generates an isochronous process request to a cantaloupe manager that functions as a resource allocation manager for the electronic device. In response, the cantaloupe manager preferably accesses a resource characterization set that includes resource usages or resource requirements that are listed in one or more resource characterizations known as xe2x80x9ccantaloupesxe2x80x9d. The resource usages in an accessed cantaloupe set preferably correspond to the foregoing isochronous process that was initially requested by the device software.
In certain embodiments, the device software may specify a resource usage mode as part of the isochronous process request to select a particular cantaloupe from the cantaloupe set. The cantaloupe set therefore advantageously provides resource characterizations that are dynamically selectable depending upon design considerations and current conditions in the electronic device.
The cantaloupe manager then preferably may compare the resource usages from the selected resource usage mode with currently-available resources of the electronic device. If sufficient available resources are present for performance of the requested isochronous process, then the cantaloupe manager preferably authorizes the device software to instantiate the requested process through a picokernel module. However, if sufficient currently-available resources are not present for execution of the requested isochronous process, then the cantaloupe manager may generate a request-fail signal to the device software to thereby deny the request to instantiate the isochronous process.
In certain embodiments, the cantaloupe manager may access the cantaloupe set to perform a hierarchical examination process to thereby encourage optimal performance while still attempting to permit authorization of the requested isochronous process. For example, in one embodiment, the cantaloupe manger may initially evaluate a most mode from the cantaloupe set. In the event that sufficient currently-available resources are not present to successfully execute the most mode, the cantaloupe manager may then preferably evaluate a best mode from the cantaloupe set.
Again, if sufficient currently-available resources are not present to successfully execute the best mode, then the cantaloupe manager preferably may evaluate a worst mode. In the event that sufficient currently-available resources are still not present to successfully execute the worst mode, then the cantaloupe manager preferably generates a request fail signal to the device software to thereby deny authorization of the requested isochronous process.
In this manner, the present invention advantageously and selectively pre-allocates sufficient guaranteed resources for a given isochronous process, prior to instantiation, to thereby guarantee successful and deterministic performance of the requested isochronous process. The present invention therefore provides an effective method for implementing scheduling mechanisms with selectable resource modes.